The present invention relates generally to multitasking computer systems, and more particularly, to multiprocessor systems and a method for increased concurrency in such systems.
Multiprocessor computing systems have been used for years to perform multiple tasks. A multiprocessing computing system may be defined as a computer assembled from a plurality of independently or semi-independently operating intelligent, i.e., processor-based, stations. The stations are generally interconnected for communication by a communication bus. Each processor may perform a plurality of tasks with apparent concurrency. Distributing the system intelligence among a plurality of stations may improve the processing throughput of the computing system, allow the system to modularly and uniformly expand to meet increasing computing requirements, and permit greater efficiency and productivity through concurrency.
While multiprocessor computing systems are known, they are not scalable. The software of such systems is often highly dependent upon the configuration and characteristics of the system hardware. This means that the scalability of the multiprocessor is limited. Further, the dependency of the software on the hardware often causes a waste in processor resources.
Synchronizing or coordinating the tasks using a central processor to enhance concurrency of a plurality of tasks has been problematic in most multiprocessor systems. The prior patents of Sullivan, U.S. Pat. Nos. 4,484,262, 4,707,781 and 5,438,680, the disclosures of which are incorporated herein by reference, addressed some issues relating to enhancing concurrency.
The Sullivan patents describe that concurrency can be enhanced by communicating between processors or tasks via commonly accessible memory to reduce conflicts within the multiprocessor system. However, the disclosed techniques are primarily dependent on hardware, such as the processors.
Therefore, a need exists for a software-based system that is capable of enhancing the concurrency of any multiprocessor computing system.